package com.zgh.util;//package com.zgh.util;
//
///**
// * @author : xpc
// */
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.annotation.FieldFill;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
//import com.baomidou.mybatisplus.generator.config.GlobalConfig;
//import com.baomidou.mybatisplus.generator.config.PackageConfig;
//import com.baomidou.mybatisplus.generator.config.StrategyConfig;
//import com.baomidou.mybatisplus.generator.config.po.TableFill;
//import com.baomidou.mybatisplus.generator.config.rules.DateType;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//
//import java.util.ArrayList;
//import java.util.Scanner;
//
///**
// * 代码生成器
// */
//public class GeneratorCode {
//
//    /**
//     * 读取控制台内容
//     */
//    public static String scanner(String tip) {
//        Scanner scanner = new Scanner(System.in);
//        StringBuilder help = new StringBuilder();
//        help.append("请输入" + tip + "：");
//        System.out.println(help.toString());
//        if (scanner.hasNext()) {
//            String ipt = scanner.next();
//            return ipt;
//        }
//        throw new MybatisPlusException("请输入正确的" + tip + "！");
//    }
//
//    public static void main(String[] args) {
//        AutoGenerator mpg = new AutoGenerator();
//
//        // 1、全局配置
//        GlobalConfig gc = new GlobalConfig();
//        String projectPath = System.getProperty("user.dir");
//        gc.setOutputDir(projectPath + "/src");
//        gc.setAuthor("xpc");
//        gc.setOpen(false);
//        // 是否覆盖
//        gc.setFileOverride(false);
//        gc.setMapperName("I%sDao");
//        gc.setEntityName("%sVO");
//        gc.setIdType(IdType.ASSIGN_ID);
//        gc.setDateType(DateType.TIME_PACK);
//        gc.setSwagger2(true);
//
//        //mapper xml
//        //gc.setBaseResultMap(true);
////        gc.setBaseColumnList(true);
//
//        mpg.setGlobalConfig(gc);
//        //2、设置数据源
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setUrl("jdbc:oracle:thin:@//10.23.222.148:20408/helowin");
//        dsc.setDriverName("oracle.jdbc.driver.OracleDriver");
//        dsc.setUsername("tysbpt");
//        dsc.setPassword("zgh_tysbpt");
//        dsc.setDbType(DbType.ORACLE);
//
//        mpg.setDataSource(dsc);
//        //3、包的配置
//        PackageConfig pc = new PackageConfig();
//        pc.setParent("com.zgh");
//        pc.setModuleName("system");
//        pc.setEntity("pojo");
//        pc.setMapper("dao");
//        pc.setXml("dao.mapper");
//        pc.setService("service");
//        pc.setController("controller");
//        mpg.setPackageInfo(pc);
//        //4、策略配置
//        StrategyConfig strategy = new StrategyConfig();
//        // 设置要映射的表名
//        strategy.setInclude("TBLU_PARAM");
//        strategy.setNaming(NamingStrategy.underline_to_camel);
//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//
//        // 自动lombok；
//        strategy.setEntityLombokModel(true);
//
//        //  自定义继承的Entity类全称，带包名
//        strategy.setSuperEntityClass("com.zgh.common.module.PourEntity");
//        strategy.setSuperMapperClass("com.zgh.common.dao.IPourDao");
//        strategy.setSuperServiceClass("com.zgh.common.service.IPourService");
//        strategy.setSuperServiceImplClass("com.zgh.common.service.impl.PourServiceImpl");
//        //自定义继承的Controller类全称，带包名
//        strategy.setSuperControllerClass("com.zgh.common.controller.BaseController");
//        //逻辑删除属性名称
//        // strategy.setLogicDeleteFieldName("deleted");
//        // 自动填充配置,表填充字段
//        /*TableFill gmtCreate = new TableFill("CREATE_TIME", FieldFill.INSERT);
//        TableFill gmtModified = new TableFill("MODIFIED_TIME", FieldFill.INSERT_UPDATE);
//        ArrayList<TableFill> tableFills = new ArrayList<>();
//        tableFills.add(gmtCreate);
//        tableFills.add(gmtModified);
//        strategy.setTableFillList(tableFills);*/
//        // 乐观锁，乐观锁属性名称
////        strategy.setVersionFieldName("version");
//
//        //生成 @RestController 控制器
//        strategy.setRestControllerStyle(true);
//        //驼峰转连字符
//        strategy.setControllerMappingHyphenStyle(true);// localhost:8080/hello_id_2
//        //是否生成实体时，生成字段注解
//        strategy.setEntityTableFieldAnnotationEnable(true);
//        //不支持国产化，关闭
//        strategy.setEnableSqlFilter(false);
//        //【实体】是否为链式模型（默认 false）
//        strategy.setChainModel(true);
////        【实体】是否生成字段常量（默认 false）
//        strategy.setEntityColumnConstant(false);
//        mpg.setStrategy(strategy);
//        mpg.execute(); //执行
//    }
//}